home *** CD-ROM | disk | FTP | other *** search
/ Network Support Library / RoseWare - Network Support Library.iso / hardware / test.exe / TESTR.PAS < prev    next >
Pascal/Delphi Source File  |  1993-03-29  |  2KB  |  67 lines

  1. Program TestR;  { 1993 NewsMaker Systems. Freeware }
  2.  
  3. Uses Dos,Crt;
  4.  
  5. Type TestRec = Array[1..512] Of Byte;
  6.  
  7. Var X : Integer;
  8.     TestBuf : TestRec;
  9.     I : Integer;
  10.     OutFile : File Of TestRec;
  11.     DoExit : Boolean;
  12.     LoopCounter : LongInt;
  13.  
  14. Procedure OutputError;
  15.   Begin
  16.   Assign (OutFile, 'Error.Dat');
  17.   ReWrite (OutFile);
  18.   Write (OutFile, TestBuf);
  19.   Close (OutFile);
  20.   End;
  21.  
  22. Begin
  23. DoExit := False;
  24. LoopCounter := 0;
  25.  
  26. ClrScr;
  27. TextColor(LightGreen);
  28. Write('TESTR  ');
  29. TextColor(White);
  30. HighVideo;
  31. Write('Reading TEST.DAT, checking for errors.          Press ALT to Quit');
  32. LowVideo;
  33.  
  34. Window(1,2,80,25);
  35.  
  36. While (Mem[$40:$17] AND byte($08) = 0) And (Not DoExit)  Do { no ALT or Err }
  37.   Begin
  38.   FillChar (TestBuf,SizeOf (TestBuf), '.'); { Clear Buffer }
  39.   Assign (OutFile, 'TEST.DAT');
  40.  
  41.   FileMode := $40;           { Open for Read, Deny none }
  42.   Reset (OutFile);
  43.  
  44.   Read (OutFile, TestBuf);   { Read record }
  45.  
  46.   Close (OutFile);           { Close File }
  47.  
  48.   For I := 2 to 512 Do
  49.     If TestBuf[1] <> TestBuf[I] then DoExit := True; { Pattern error }
  50.  
  51.   If Char(TestBuf[1]) = '.' then DoExit := True; { Read Failed, still have '.' }
  52.  
  53.   If DoExit = True then
  54.     Begin
  55.     Writeln;
  56.     Writeln ('Error reading Record ',#7,LoopCounter);  { #7 makes Beep }
  57.     OutputError;
  58.     DoExit := True;
  59.     End
  60.   Else
  61.     Begin
  62.     Inc (LoopCounter);
  63.     { If LoopCounter Mod 10 = 0 then }  { Uncomment to speed up reads }
  64.       WriteLn ('OK ',Char(TestBuf[1]),' ',LoopCounter);
  65.     End;
  66.   End;
  67. End.